package com.huazi.www.drug.drugz.servlet;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.huazi.www.drug.drugz.enity.Drug;
import com.huazi.www.drug.drugz.enity.DrugStock;
import com.huazi.www.drug.drugz.service.DrugService;
import com.huazi.www.drug.drugz.service.impl.DrugServiceImpl;
import com.netease.is.sms.demo.utils.SendDemo;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * @description：初始化界面
 * @author：zt
 * @date：2021/5/10 10:54
 * @versions：v1.0
 */
public class InitServlet extends HttpServlet {

    //业务逻辑
    DrugService drugService = new DrugServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("UTF-8");    //请求字符集编码
        resp.setCharacterEncoding("UTF-8");   //响应字符集编码
        PrintWriter wr = resp.getWriter();    //输出对象
        String opr = req.getParameter("opr");   //请求操作码 opr
        if (opr == null || opr.equals("")) {     //操作码的空值处理
            opr = "";
        }
        //操作处理
        if (opr.equals("drug")) {          //添加库存【药品】下拉框初始化 list
            List<Drug> list = drugService.list();    //获得药品编号和药品名称  list
            Object o = JSON.toJSON(list);            //转换成JSON格式
            wr.print(o);                             //输出

        } else if (opr.equals("check")) {    //检查库存 list
            List<Drug> list = drugService.drugs();    //检查药品编号、名称、数量 drugs
            Object o = JSON.toJSON(list);             //转换JOSN格式
            wr.print(o);                              //输出

        } else if (opr.equals("applyInit")) {         //申请状态的初始化  分页

            String curr = req.getParameter("page");    //页码  page
            String page = req.getParameter("limit");   //页大小 limit
            String date = req.getParameter("date");    //用户时间查询类型  date
            String type = req.getParameter("type");    //申请类型  type

            //分页查询  selPage int转换
            JSONObject jsOb = drugService.selPage(Integer.parseInt(date), Integer.parseInt(type), Integer.parseInt(page), Integer.parseInt(curr));
            //输出结果
            wr.println(jsOb);
        } else if (opr.equals("drugQuery")) {      //药品管理的初始化  分页

            String curr = req.getParameter("page");    //页码 page
            String page = req.getParameter("limit");   //页大小 limit
            String drugName = req.getParameter("drugName");    //药品名称 drugName
            String drugType = req.getParameter("drugType");    //药品类型 drugType

            //分页查询 selPage 3int
            JSONObject jsOb = drugService.selPage(drugName, Integer.parseInt(drugType), Integer.parseInt(page), Integer.parseInt(curr));
            //输出结果
            wr.println(jsOb);
        } else if (opr.equals("selStork")) {     //根据时间查询同一批订单
            String date = req.getParameter("date");    //时间 (时间戳)
            Date date1 = new Date(Long.parseLong(date));  //时间构造方法 毫秒数转换

            //时间日期格式转换  ("yyyy-MM-dd HH:mm:ss")
            SimpleDateFormat simp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

            String dates = simp.format(date1);    //将日期转换成字符串 format
            List<DrugStock> list = drugService.list(dates);   //查询同一批申请药品 list
            String s = JSON.toJSONString(list);   //JSON格式转换
            wr.println(s);     //输出
        } else if (opr.equals("massage")) {    //发送短信通知
            String drugNames = req.getParameter("drugNames");    //库存药品名称
            SendDemo.sendArn("18373837317", "宴先生", drugNames);    //发送短信 SendDemo.sendArn
            wr.println(JSON.toJSONString(true));    //输出流输出 true
        }
        wr.flush();    //刷新缓存区
        wr.close();    //关闭流
    }

}
